package cn.dglydrpy.study.j2ee.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.dglydrpy.study.j2ee.manage.dao.UserDAO;
import cn.dglydrpy.study.j2ee.manage.entity.User;
/*
 * 添加用户数据成功后后重定向到list
 */
public class AddUserServlet3 extends HttpServlet{

	private static final long serialVersionUID = 1L;

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		/*
		 * 对浏览器端提交过来的数据使用指定的字符集来解码。
		 * 注:
		 * 	下面这行代码要添加到所有的getParameter方法的前面。只针对post请求有效。
		 */
		request.setCharacterEncoding("UTF-8"); //设定服务器按utf-8解码 防中文编码不匹配出现乱码
		//读取用户信息
		User user = new User();

		user.setUsername(request.getParameter("username"));
		user.setPassword(request.getParameter("password"));
		user.setEmail(request.getParameter("email"));
		user.setPhone(request.getParameter("phone"));
		/*
		 * 1.设置Content-type消息头，告诉浏览器服务器返回的数据类型及编码
		 * 2.设置Out在输出时，使用哪种字符集来编码
		 */
		response.setContentType("text/html;charset=utf-8");//先设置中文编码，在给输出流！！！
		PrintWriter out = response.getWriter();
		
		//提交的信息保存到数据库
		UserDAO dao = new UserDAO();
		try{
			dao.save(user);
			/*
			 * out在输出时，默认会使用iso-8859-1来编码。
			 */
			out.println("添加成功！");//永远看不到
			response.sendRedirect("listUser3");//先把response对象的数据清空，再重定向信息放到response 
			//等下面的代码执行完立即重定向；重定向网址可以放绝对网址和相对网址
			out.println("添加成功！");//永远也看不到，too!因为是使用JS实现的，而非重定向
	
			System.out.println("这行代码会执行！");
		} catch (Exception e){
			e.printStackTrace();
			out.println("用户名不可重复，提交失败！");
		}
	}

}
